.. topic:: Предисловие Андрея Александреску


    Те из нас, кто знает Али, могут заметить, что его книга о D пропитана характером ее автора.
    Личность автора: прямота, терпение и любезность без потворства.
    В каждом предложении есть цель, и с каждым из них делается шаг вперед.
    не слишком быстро и не слишком медленно. "Обратите внимание, что сама функция opApply() реализована
    циклом foreach. В результате цикл foreach внутри main() в конечном итоге делает
    косвенное использование foreach над членом points". И так далее, в столь
    столько слов, сколько нужно. И в правильном порядке; Али проделывает замечательную работу по
    изложения языковых концепций - которые, особенно для новичка, в подавляющем большинстве случаев
    особенно для начинающего, подаются "параллельно" - в последовательной манере.
    Но есть еще одна вещь, которая мне больше всего нравится в "Программировании на D": это хорошая книга
    для изучения программирования в целом. Видите ли, хорошая вводная книга по Haskell
    неявно учит функциональному программированию; книга по языку C будет сопровождаться
    с понятиями системного программирования на буксире; на Python - со скриптингом, и так далее.
    и так далее. Чему же тогда будет учить хороший вводный текст по D в подтексте? В лучшем случае,
    Программированию с большой буквы П.
    D поощряет отношение "используй правильный инструмент для работы" и позволяет пользователю использовать
    широкий спектр приемов программирования, не бросая слишком много
    идиосинкразии. Наиболее интересным способом подхода к кодированию на D является
    потому что для каждой конструкции, которая начинает становиться неуклюжей, есть возможность
    переделать ее в правильную, выбрав другую реализацию, подход или
    парадигму вообще. Чтобы выбрать наиболее подходящий вариант, инженер должен знать
    все возможные варианты, и "Программирование на D" - отличный способ вооружить
    и "Программирование на D" - отличный способ вооружить свой интеллект этими знаниями. Их усвоение помогает не только писать хороший
    код на D, но и писать хороший код вообще.
    В дополнение к обучению программированию есть и хорошие тактические советы.
    и концепций языка. Нестареющее учение об избежании дублирования кода, выборе
    хороших имен, стремлении к хорошей декомпозиции и многом другом - все это здесь, быстро и
    грязные хаки, итеративно отжигаемые в надежные решения, как и должно быть в
    как и должно быть в обычной практике. Вместо того чтобы стремиться сделать все быстро, "Программирование
    на D" фокусируется на том, чтобы сделать все правильно, к долговременной выгоде своего читателя.
    Я давно считаю, что D - хороший первый язык программирования для изучения. Он раскрывает
    пользователя с разнообразными концепциями - системной, функциональной, объектно-ориентированной, генеративной,
    генеративные - откровенно и без притворства. Так и книга Али, которая кажется мне
    мне кажется отличной реализацией этой возможности.

    Андрей Александреску
    Сан-Франциско, май 2015 г.


.. topic:: Предисловие

    D - это мультипарадигмальный язык системного программирования, который сочетает в себе широкий спектр
    мощных концепций программирования от самых низких до самых высоких уровней. В нем
    особое внимание уделяется безопасности памяти, корректности программ и прагматизму.
    Основная цель этой книги - научить языку D читателей, которые только начинают изучать компьютерное программирование.
    программировании. Хотя наличие опыта работы с другими языками программирования
    безусловно, полезно, эта книга начинается с основ.
    Для того чтобы эта книга была полезной, вам понадобится среда для написания,
    компиляции и выполнения программ на языке D. Эта среда разработки должна включать в себя как минимум
    как минимум, компилятор D и текстовый редактор. Мы узнаем, как установить компилятор и
    компиляции программ в следующей главе.
    Каждая глава основывается на содержании предыдущих, вводя как можно меньше
    новых понятий, насколько это возможно. Я рекомендую читать книгу линейно,
    не пропуская глав. Хотя эта книга была написана для начинающих
    она охватывает практически все возможности языка D. Более опытные программисты могут использовать книгу в качестве
    книгу в качестве справочника по языку D, начав с раздела оглавления.
    Некоторые главы содержат упражнения и их решения, так что вы можете написать небольшие
    программы и сравнить свои методы с моими.
    Компьютерное программирование - это увлекательное ремесло, которое предполагает постоянное
    постоянно открывать и изучать новые инструменты, методы и концепции. Я уверен, что вам
    получите удовольствие от программирования на D, по крайней мере, такое же, как и я. Учиться программировать проще
    и веселее, если учиться вместе с другими. Воспользуйтесь преимуществами группы новостей D.learn
    newsgroup, чтобы следить за обсуждениями, задавать вопросы и отвечать на них.
    Эта книга также доступна на турецком языке.


.. topic:: Благодарности


    Я в долгу перед следующими людьми, которые сыграли важную роль в процессе
    в работе над этой книгой:
    Мерт Атаол, Зафер Челенк, Салих Динчер, Кан Алпай Чифтчи, Фарук Эрдем Энсел,
    Мухаммет Айдын (он же Менгу Каган), Эргин Гюней, Жорди Сайол, Дэвид Херберт,
    Андре Тампуболон, Гур-Гададхара Даса, Рафаэль Яксе, Андрей Митрович,
    Йоханнес Пфау, Джером Снятецки, Джейсон Адамс, Али Х. Чалышкан, Пол Юрчак,
    Брайан Рогофф, Михаил Страшун (Михаил Страшунов), Джозеф Раштон Вейкелинг,
    Тове, Уго Флорентино, Сатья Потамсетти, Луис Маркес, Кристоф Вендлер,
    Даниэль Нильсен, Кетмар Дарк, Павел Лукин, Йонас Фиала, Норман Харди, Рич
    Морин, Дуглас Фостер, Пол Робинсон, Шон Гарратт, Стефан Гуже, Шамма
    Канцлер, Стивен Швайгоффер, Роббин Карлсон, Бубненков Дмитрий Иванович,
    Бастиан Вило, Оливье Пизано, Дэйв Йост, Томаш Мязек-Миодушевский, Жерар
    Вресвейк, Джастин Уир, Джеральд Янсен, Сильвен Голт, Шрирамана Шарма, Джей
    Норвуд, Анри Менке, Чен Лежиа, Владимир Пантелеев, Мартин Тширшке,
    ag0aep6g, Эндрю Эдвардс, Стив Уайт, Марк Шварцманн, Тибо Шарль,
    Ричард Пальме, Дон Грант, Гоксан Кадир, Александр Трейгер, Майкл Сигел,
    Квирин Шролл, Дон Аллен, Красимир Беров, Чибиси Чима-Окереке, Ксавье
    Гашон, Пол Хайнс и Исмаил Эмре Арыкан.
    Особая благодарность Луису Маркесу и Стивену Швайгофферу, которые благодаря
    благодаря своей кропотливой работе улучшили каждую главу книги. Если вы найдете какую-то часть этой
    если вы найдете какую-то часть этой книги полезной, то это, скорее всего, благодаря их усердному редактированию.
    1. http://forum.dlang.org/group/digitalmars.D.learn/
    2. http://ddili.org/ders/d/

    Спасибо Луису Маркесу, Стивену Швайгофферу, Андрею Митровичу, Роббину
    Карлсону, Эргину Гюнею и Эндрю Эдвардсу за их предложения, благодаря которым эта книга была переведена с моего английского на английский.
    Я благодарен всему сообществу D за то, что оно поддерживает мой энтузиазм и
    мотивацию. В D есть удивительное сообщество неутомимых людей, таких как
    bearophile и Kenji Hara.
    Эбру, Дамла и Дерин, спасибо вам за терпение и поддержку, пока я
    пока я терялся при написании этих глав.

    Ali Çehreli
    Маунтин-Вью, май 2017 г.

    Этот пересмотренный вариант книги содержит множество исправлений, улучшений и новую
    главу: статический foreach (стр. ,,,).

    Ali Çehreli
    Маунтин-Вью, февраль 2019 г.

    Основное дополнение этой редакции - конструкторы копирования (стр. 279).

    Ali Çehreli
    Маунтин-Вью, январь 2022 г.
